/**
 * zmn模块模块-模块列表
 * 文件命名格式：zmn.模块名称.表名称.功能.js
 * @author heguanghua
 * @since 2020/04/16 14:50
 */
let editObj = null, ptable = null, treeGrid = null, tableId = 'zmn-table', layer = null;
layui.define(['form', 'table', 'zmnApp', 'treeGrid'], function (exports) {
    let $ = layui.jquery;
    let form = layui.form;
    let layer = layui.layer;
    let treeGrid = layui.treeGrid;
    let zmnApp = layui.zmnApp;

    ptable = treeGrid.render({
        id: tableId,
        elem: '#' + tableId,
        url: zmnApp.SYS_BASE_URL +'/module/ajaxTree.action?sysId=' + json.sysId,
        cellMinWidth: 100,
        idField: 'moduleId',                //必須字段
        treeId: 'moduleId',                 //树形id字段名称
        treeUpId: 'parentId',               //树形父id字段名称
        treeShowName: 'moduleName',         //以树形式显示的字段
        heightRemove: [".dHead", 123],      //不计算的高度,表格设定的是固定高度，此项不生效
        height: '100%',
        isFilter: false,
        iconOpen: false,                    //是否显示图标【默认显示】
        isOpenDefault: true,                //节点默认是展开还是折叠【默认展开】
        loading: true,
        method: 'POST',
        isPage: false,
        cols: [[
            // {type: 'checkbox', sort: false},
            {field: '', title: '选择', width: 50, align: 'center', sort: false, templet: function(d) {
                    return d.level > 0 ? '<input type="checkbox" name="layTableCheckbox" value="' + d.LAY_INDEX + '" lay-skin="primary">' : '';
                }},
            {field: 'sort', title: '排序', width: 60, align: 'center', sort: false, edit: json.hasModifySort ? 'text' : ''},
            {field: 'moduleId', title: '模块ID', width: 80, align: 'center', sort: false},
            {field: 'moduleName', title: '模块名称', minWidth: 240, sort: false, templet:  function(d) {
                    if(d.level == 0) {
                        return d.moduleName;
                    } else {
                        return json.hasDetail ? zmnTpl.linkTpl(d.moduleName, zmnApp.SYS_BASE_URL + '/module/detail.action?moduleId=', d.moduleId) : d.moduleName;
                    }
                }},
            {field: 'moduleCode', title: '模块代码及路径', minWidth: 160, align: 'left', sort: false},
            {field: 'status', title: '状态', width: 80, align: 'center', sort: false, templet:  function(d) {
                    return zmnTpl.statusTpl(d.status);
                }},
            {fixed:  'right', title:  '操作', width:  180, align:  'left', templet : function(d) {
                    let html = '';
                    if(d.level > 0) {
                        html += json.hasDetail ? '<a lay-href="' + zmnApp.SYS_BASE_URL + '/module/detail.action?moduleId=' + d.moduleId + '" class="layui-btn layui-btn-xs layui-btn-primary" lay-text="模块信息"><i class="layui-icon">&#xe642;</i>详情</a>' : '';
                        html += json.hasPermitList ? '<a lay-href="' + zmnApp.SYS_BASE_URL + '/permit/list.action?moduleId=' + d.moduleId + '" class="layui-btn layui-btn-xs layui-btn-primary" lay-text="权限管理">权限</a>' : '';
                    }
                    if(d.level <= 2) {
                        let parentId = d.level == 0 ? 0 : d.moduleId;   // 0为系统
                        html += json.hasAddEdit ? '<a lay-href="' + zmnApp.SYS_BASE_URL + '/module/detail.action?sysId=' + d.sysId + '&parentId=' + parentId + '" class="layui-btn layui-btn-xs layui-btn-primary" lay-text="新增模块">+子模块</a>' : '';
                    }
                    return html;
                }}
        ]],
        parseData: function (res) {     // 数据加载后回调
            res.data.forEach(function(item) {
                if(item.level > 0) {
                    item.lay_is_open = false;
                }
            });
            return { "message": res.message, "code": res.status,  "data": res.data, "count": 0, "is": true, "tip": "OK"};
        }
    });

    // 修改排序
    treeGrid.on("edit(zmn-table)", function(obj){
        let url = obj.data.level == 0 ? zmnApp.SYS_BASE_URL +"/sys/modify/modifySort.action": zmnApp.SYS_BASE_URL +"/module/modify/modifySort.action";
        zmnPage.laySort(obj, url, obj.data.moduleId);
    });
    
    // 启用/停用（批量）
    setStatus = function(status) {
        let $ = layui.$;
        let checkStatus = treeGrid.checkStatus('zmn-table');
        let ids = new Array();
        checkStatus.data.forEach(function (row, i) {
            ids.push(row['moduleId']);
        });
        if(ids == null || ids.length == 0) {
            layui.layer.msg("请选择要更改状态的模块");
            return;
        }
        zmnPage.ajaxSimple(zmnApp.SYS_BASE_URL +"/module/modify/modifyStatus.action", { ids: ids.join(","), status: status }, 1000);
    }

    //对外暴露的接口
    exports('module_tree', {});
});